# 序列是指:内容连续,有序,可以使用下标索引的一类数据容器
# 列表,元组,字符串都可以视为序列
# 切片是指的是从一个大序列取出一个小序列[1,2,3,4]->[1,2,3]

# 语法:序列[起始下标:结束下标:步长]
# 起始下标表示从何处开始,可以留空,留空表示从头开始
# 结束下标表示到何处结束(不包含),可以留空,留空表示截取到尾
# 步长表示取元素的间隔,步长为1表示一个一个取元素,步长为2表示每跳过一个元素取元素,步长为N,表示每此跳过N-1个元素取元素
# 步长为负数的时候,表示反向取(注意,起始下标和结束下标也要反向标记),所有负号其实只是表示方向
# 对序列切片的操作不会影响序列的本身,只是得到一各新的字符串

# 对list进行切片
my_list = [0,1,2,3,4,5,6,7,8]
result1 = my_list[1:4]
print(result1) # [1,2,3]

# 对tuple进行切片
my_tuple = (0,1,2,3,4,5,6,7,8)
result2 = my_tuple[:]
print(result2) # 012345678

# 对str进行切片
my_str = "012345678"
result3 = my_str[::2]
print(result3) # 02468

# 对序列进行切片,从头开始到最后结束,步长为-1
result4 = my_str[::-1]
print(result4) # 876543210

# 对列表进行切片从3开始到1结束,步长为-1
result5 = my_list[3:1:-1]
print(result5) # 32

# 对元组进行切片,从头开始,到尾结束,步长为-2
result6 = my_tuple[::-2]
print(result6) # 86420